package main

import "fmt"
func main(){
	//语法
	//var map 变量名 map[keytype] valuetype
	//方式1：
	//定义map变量
	var a map[int]string
	//只声明map内存中是没有分配空间
	//必须通过make进行初始化才能分配到空间
	a = make(map[int]string,10) //map可以存放10个键值对
	//将键值对存入map
	a[0005] = "一一"
	a[0002] = "二二"
	a[2594815] = "三三"
	a[0004] = "四四"
	//输出
	fmt.Println(a)
	//方式2：
	b := make(map[int]string)
	b[323155]= "张三"
	b[681188]= "李四"
	fmt.Println(b)
	//方式3：
	c :=map[int]string{
		22222:"嘟嘟",
		33333:"滴滴",
		44444:"哒哒",
	}
	fmt.Println(c)
	//增删查改
	d := make(map[int]string)
	//增
	d[123] = "起床"
	d[125] = "学校"
	d[1265] = "吃饭"
	d[12895] = "洗澡"
	fmt.Println(d)
	//删
	delete(d,12895)
	fmt.Println(d)
	//查
	value,flag := d[123]
	fmt.Println(value,flag) //起床 true
	//改
	d[123] = "睡大觉"
	fmt.Println(d)
	//获取长度
	fmt.Println(len(d)) //3个元素
	//遍历 - for range
	for k,v:=range d{
		fmt.Printf("key为：%v,value为：%v\n",k,v)
	}
	fmt.Println("---------------------------")
	//加深难度
	e := make(map[string]map[int]string)
	//赋值
	e["班级1"] = make(map[int]string,3)
	e["班级1"][1111112] = "胖子"
	e["班级1"][1828648] = "大王"
	e["班级1"][9585955] = "www"
	e["class2"] = make(map[int]string,3)
	e["class2"][0000001] = "sky"
	e["class2"][0205656] = "skye"
	e["class2"][1515866] = "skyeeee"
	for k1,v1:=range e{
		fmt.Println(k1)
		for k2,v2 := range v1{
			fmt.Printf("学号为：%v,姓名为：%v\n",k2,v2)
		}
	}

}